<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
   span{
            position: absolute;
            left: 0;
            top:200px;
            width: 200px;
            height: 200px;
            background-color: pink;
        }
    </style>
</head>
<body>
    <button class="btn500">点了才会走</button>
    <button class="btn800">点了才会走800</button>
 
    <span>赵哲</span>
    <script>
        // 给不同元素指定了不同的定时器
       
        function han(a,b){
            // 先清除以前的定时器 只保留一个定时器 不然一直点会一直加速前进
            clearInterval(a.timer);
            a.timer = setInterval(function() {
                // 步长值要写在定时器里面
                // 不要出现小数的情况 往大了取
                // var step = Math.ceil(b - a.offsetLeft) / 10;
                var step = (b - a.offsetLeft) / 10;
              step =  step > 0 ? Math.ceil(step) : Math.floor(step);
            if(a.offsetLeft == b){
                // 停止动画 本质是停止计时器
                clearInterval(a.timer);
            }
            // 把每次加1 这个值改为一个慢慢变小的值  步长公式（目标值 - 现在的位置 / 10）
           a.style.left = a.offsetLeft + step + 'px';
        },15)
        }
      
        var span = document.querySelector('span');
        var btn500 = document.querySelector('.btn500');
        var btn800 = document.querySelector('.btn800');
     
        btn500.addEventListener('click',function(){
            han(span,500)
        })
        btn800.addEventListener('click',function(){
            han(span,800)
        })
            
        // 匀速动画就是 盒子当前的位置 + 固定的值 
        // 缓动动画就是 盒子当前的位置 +  步长公式（目标值 - 现在的位置 / 10）
    </script>
</body>
</html>